home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / util / shell / axuucp_0_1.lha / axsh / rexx / rn-subscribe.rexx < prev    next >
Encoding:
OS/2 REXX Batch file  |  1995-03-22  |  2.4 KB  |  94 lines

  1. /****** axuucp/rn-subscribe **************************************************
  2. *
  3. *   NAME
  4. *    rn-subscribe - Subscribe new groups
  5. *
  6. *   SYNOPSIS
  7. *    rx rn-subscribe.rexx [user]
  8. *
  9. *   DESCRIPTION
  10. *    This script adds all groups to your ~/.rnnewsrc which are not already
  11. *    listed there.  New groups will be subscribed.
  12. *
  13. *   AUTHOR
  14. *    Tobias Ferber <tf@ganymed.hall.sub.org>
  15. *
  16. ******************************************************************************
  17. *
  18. */
  19.  
  20. user       = arg(1)
  21. newsrc     = axconfig("home") || user || "/.rnnewsrc"
  22. axnews     = axconfig("news")
  23. newsgroups = axconfig("newsgroupfile")
  24. tempfile   = "T:rn-subscribe." || pragma('Id')
  25.  
  26. /**/
  27.  
  28. call open('fp',newsgroups)
  29.  
  30. do until eof('fp')
  31.   str= readln('fp')
  32.   if words(str) > 0 then do
  33.     parse var str gname ' ' .
  34.     address command 'search >' tempfile 'from "'newsrc'" search "'gname'" nonum'
  35.     call open('tmp',tempfile); str= readln('tmp'); call close('tmp')
  36.     if words(str) < 1 then do
  37.       say gname 'added'
  38.       address command 'echo >>' newsrc '"'gname':"'
  39.       end
  40.     end
  41.   end
  42.  
  43. call close('fp')
  44.  
  45. if exists(tempfile) then address command 'delete quiet' tempfile
  46. exit
  47.  
  48.  
  49. /*@<axconfig>*/
  50.  
  51. /* get an AXsh configuration value */
  52.  
  53. axconfig: procedure
  54.   tempfile = "T:axconfig." || pragma('Id')
  55.   rc_index  = "AXsh:rexx/rc.index"
  56.   var_val=""; var_file=""; var_defval="";
  57.  
  58.   parse upper arg var_name
  59.   if left(var_name,1) ~= '%' then var_name = '%'var_name
  60.   if right(var_name,1) ~= ':' then var_name = var_name':'
  61.  
  62.   if open('idx',rc_index,'Read') then do
  63.     do until (eof('idx') | (var_file~=''))
  64.       str= translate(readln('idx'),' ',d2c(9))
  65.       if words(str) > 0 then do
  66.         parse var str vname ' ' fname '"' defval '"'
  67.         if upper(vname) = var_name then do
  68.           var_file= strip(fname,'B',' 'd2c(9))
  69.           var_defval= defval
  70.           end
  71.         end
  72.       end
  73.     call close('idx')
  74.     end
  75.   else say 'Could not read "'rc_index'"'
  76.  
  77.   if words(var_file) > 0 then do
  78.     if open('rc',var_file,'Read') then do
  79.       do until (eof('rc') | (var_val~=''))
  80.         str= translate(readln('rc'),' ',d2c(9))
  81.         if upper(word(str,1)) = var_name then var_val = strip(readln('rc'),'B',' 'd2c(9))
  82.         end
  83.       call close('rc')
  84.       end
  85.     else say 'Could not examine "'var_file'" for' var_name
  86.     end
  87.   else do
  88.     if words(var_defval) > 0 then var_val= var_defval
  89.     else say 'No such config variable:' var_name
  90.     end
  91.  
  92.   return var_val
  93.  
  94.